package com.ftg.learn.chapter04;

import java.util.Scanner;

/**
 * 流程 ：
 * 顺序流程 :
 * 分支
 * 择一性
 * 选择问题
 *
 * @author kangjx
 * @date 2022/12/13
 */
public class LearnFlow {


    //三目条件运算符 | 三元表达式
//    使用场景 : 赋值
    //缺点 ：  要exp2 exp3 类型一致
    //不适应用于大段代码的流程控制
//    exp1 ? exp2 : exp3
//    exp1 ? (exp1 ? exp2 : exp3) : (exp1 ? exp2 : exp3)

    public static void firstThirdType() {
//        表达式1 ： boolean | 关系运算符 | 逻辑运算符

        System.out.println(true ? "这是真的" : "这是假的");

        Scanner scan = new Scanner(System.in);
        System.out.println("请输入你的成绩!?");
        int score = scan.nextInt();

        //第一类处理  容错

//        边界值
        System.out.println(score >= 0 && score <= 100 ? "输入正确" : "您输入的成绩有误，》=0《=100");


        System.out.println(score < 60 ? "不及格" : (score < 70) ? "及格" : (score < 80) ? "中" : "优");

//        int a = true ? 2 : "3";

//        Object 它是所有类型顶层类 [面向对象]

//        System.out.println(true ? 2 : "aaa");
    }

    //择一性
//    if (exp1){
////        代码块 code block  如果这块想走exp1为真
//    }

//    if (exp1) {
////        code block exp1为真时走
//    }else{
////        code block exp1为假时走
//    }

//    if (true){
//
//    }else if(){
//
//    }else if()...N{
//
//    }else{
//
//    }

//if 与三目区别
    //

    /**
     * 学习if
     */
    public static void learnIf() {

        int a = true ? 2 : 3;

        System.out.println("请输入你的成绩!?");
        Scanner scan = new Scanner(System.in);
        int score = scan.nextInt();

        //代表成绩最大值 便于后期维护
        int maxScore = 120;
        if (score < 0 || maxScore < score) {
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
            System.out.println("成绩录入错误!!!");
        } else {
            System.out.println(score < 60 ? "不及格" : (score < 70) ? "及格" : (score < 80) ? "中" : "优");
        }
    }

    public static void learnIfTwo() {
        int a = 9;
        if (true) {
            a++;
            if (true) {
                System.out.println("1111");
                a++;
            }
        }

        int a1 = 13;
        if (true) {
            a1++;
        } else if (true) {
            a1++;
        } else if (true) {
            a1++;
        } else if (true) {
            a1++;
        } else if (true) {
            a1++;
        } else {
            a1++;
        }
        System.out.println(a1);

        System.out.println(a);
    }

    /**
     * switch(标识符){
     * case 具体的值 :
     * <p>
     * break;
     * }
     * case 下坠问题
     * 学习switch
     */
    public static void learnSwitch() {
        int a = 13;
        // byte short int char [string Byte Character Short Integer enum]
        switch (a) {
            case 0:
                System.out.println("0的情况");
                break;
            case 1:
                System.out.println("1的情况");
                break;
            default:
                System.out.println("default");
        }
    }

    /**
     * for while dowhile
     * <p>
     * for 明确开始边界  明确最大边界  明确增量时
     */
    public static void learnFor() {
        long start = System.currentTimeMillis();
        for (byte i = 1, len = 10; i <= len; i++) {
            System.out.print(i + "\t");
        }
        long end = System.currentTimeMillis();

        System.out.println(end - start);
    }

    /**
     * 双指针  i  j
     * super this iterator
     */
    public static void learnFor1() {
        long start = System.currentTimeMillis();
        for (int i = 1, j = 10; j > i; i++, j--) {
            System.out.print(i + "\t");
            System.out.print(j + "\t");
        }
        long end = System.currentTimeMillis();
        System.out.println("用时" + (end - start));
    }

    /**
     * 1 -10
     * 三种或者三种以上
     */
    public static void learnFor2() {
//        for(int i = 1,len = 10; i <= len;i++){
////            System.out.println( i % 2 == 0 ? "是二的倍数 : " + i : "不是二的倍数" + i );
//            if( i % 2 == 0){
//                System.out.println("是二的倍数 : " + i);
//            }
//        }
        for (int i = 2, len = 10, crm = 2; i <= len; i += crm) {
            System.out.println(i);
        }
    }

    /**
     * 2 4 6 8 6 4 2
     * 2 4 6 4 2
     * 1 3 5 7 5 3 1
     * 求回文数序列
     */
    public static void learnFor3() {
//         1 2 3 2 1
        for (int i = 1, len = 6; i < len; i++) {
            System.out.print((i < (len >> 1) ? i + "\t" : (len - i) + "\t"));

//            if(i < len /2){
//                System.out.println( i );
//            }else{
//                System.out.println(len - i);
//            }
        }
    }


//    1 10 2 9 3 8 4 7 5 6
//
//    begin: {  :
//
//    end;} break;

    public static void main(String[] args) {
        learnFor3();
    }

}
